package com.chb.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chb.system.vo.UserAndDeptVo;
import com.chb.system.vo.UserVo;
import com.hos.entity.sys.Menu;
import com.hos.entity.sys.Role;
import com.hos.entity.sys.User;
import com.hos.vo.Result;

import java.util.List;
import java.util.Map;

/**
 * @author: 陈海彬
 * @date: Created in 2023/12/7 19:36
 * @description:
 * @modified By:
 * @version:
 */
public interface UserService {
    /**
     * 根据id查找用户
     *
     * @param id 用户ID
     * @return
     */
    User getUserById(Long id);

    /**
     * 根据用户手机号查找用户信息
     *
     * @param phone 手机号
     */
    User findUserByPhone(String phone);

    /**
     * 条件查询用户信息并进行分页
     *
     * @param userVo 用户vo类
     */
    Page<User> findUserByCond(UserVo userVo);

    List<User> findSchedulingUser();

    List<User> findUser(Map<String, Object> params);

    // 添加
    Integer addUser(User user);

    List<User> getUserByParams(Map<String, Object> params);

    // 删除
    Integer deleteUserByIds(List<Long> ids);

    // 修改
    Integer updateUser(User user);

    /**
     * 查询所有的可用用户
     *
     * @return
     */
    List<User> selectAllUser();

    /**
     * 根据科室id查询医生列表信息
     *
     * @param deptId 科室id
     */
    public List<UserAndDeptVo> getUserListByDeptId(Long deptId);

    /**
     * 重置密码
     *
     * @param userIds 需要重置密码的用户IDS
     * @return
     */
    Integer resetPwd(List<Long> userIds ,String newPassWord);

    /**
     * 根据科室IDS查询用户
     *
     * @param deptids 科室IDS
     * @return
     */
    boolean getUserByDeptIds(List<Long> deptids);


    /**
     * 随机查询医生列表信息
     */
    List<User> getUserListRanges();


    /**
     * 判断用户手机号是否重复
     *
     * @param phone 用户手机号
     */
    Result<String> userPhone(String phone);
}